package com.spider;

import org.junit.Test;

import java.util.List;

/**
 * 测试网络爬虫
 *
 * @author Conceit
 * @version 1.0, 2017/1/11
 */
public class TestSpider {

    //通过web的class获取内容
    @Test
    public void getDatasByClass() {
        Rule rule = new Rule();
        rule.setUrl("http://www1.sxcredit.gov.cn/public/infocomquery.do?method=publicIndexQuery");
        //参数集合
        rule.setParams(new String[]{"query.enterprisename", "query.registationnumber"});
        //参数对应的值
        rule.setValues(new String[]{"兴网", ""});
        //对返回的HTML，第一次过滤所使用的标签，请先设置type
        rule.setResultTagName("cont_right");
        //请求的类型，默认为GET
        rule.setRequestMethod(Rule.POST);
        //CLASS/ID/SELECTION
        //设置resultTagName的类型，默认为id
        rule.setType(Rule.CLASS);
        List<LinkTypeData> extracts = CoreExtractSerach.extract(rule);
        printf(extracts);
    }

    //扒取返回的所有数据信息 不设置请求参数和请求值 只设置类似的请求标题数组  可为多个
    @Test
    public void getKeyWordDatasByBaiduNews() {
        Rule rule = new Rule();
        rule.setUrl("http://news.baidu.com/");
        //参数集合
        //rule.setParams(new String[]{"work"});
        //参数对应的值
        //rule.setValues(new String[]{"小米"});
        //设置类似的标题
        rule.setKeywordTitle(new String[]{"小米", "支付宝", "辽宁舰", "陕西", "咸阳", "西安"});
        //对返回的HTML，第一次过滤所使用的标签，请先设置type
        rule.setResultTagName(null);
        //请求的类型，默认为GET
        rule.setRequestMethod(Rule.GET);
        //CLASS/ID/SELECTION
        //设置resultTagName的类型，默认为0-class 1-id 2-selection  如果不传入则去除web数据中的boby标签
        rule.setType(-1);
        List<LinkTypeData> extracts = CoreExtractSerach.extract(rule);
        printf(extracts);
    }

    public void printf(List<LinkTypeData> datas) {
        for (LinkTypeData data : datas) {
            System.out.println("标题：" + data.getLinkTitle());
            System.out.println("链接的内容:" + data.getLinkContext());
            System.out.println("链接的地址" + data.getLinkHerf());
            System.out.println("***********************************");
        }

    }


}
